package tests;

import common.Utils;
import org.openqa.selenium.By;

import java.io.IOException;

public class LoginPage extends Utils {
    public static String url = "http://127.0.0.1:9580/sign-in.html";

    public LoginPage() {
        super(url);
    }
    //测试登录页面的加载，登录成功和登录失败
    //通过查看页面元素是否存在来检查页面加载成功与否
    public void loginPageRight(){
        //论坛logo图标
        driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.text-center.mb-4 > img"));
        //用户登录
        driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.card.card-md > div > h2"));
    }

    //检查登录功能
    public void LoginSuc(){
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("sss");
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        //点击登录按钮
        driver.findElement(By.cssSelector("#submit")).click();
        //检查点击登录是否成功
        //通过查看比特论坛logo是否登录成功
        driver.findElement(By.cssSelector("body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > h1 > a > img"));
        //通过查看发布帖子是否登录成功
        driver.findElement(By.cssSelector("#bit-forum-content > div.page-header.d-print-none > div > div > div.col-auto.ms-auto.d-print-none > div > a.btn.btn-primary.d-none.d-sm-inline-block.article_post"));
        //通过页面标题来检查是否成功
        String title = driver.getTitle();
        assert title.equals("比特论坛");

        //返回登录页面
        // driver.navigate().back();
        //刷新页面
        // driver.navigate().refresh();
    }

    //检查登录失败01--密码错误
    public void LoginFail01() throws IOException {
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("aaa");
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        //点击登录按钮
        driver.findElement(By.cssSelector("#submit")).click();
        //获取当前异常文本
        String res01 = driver.findElement(By.cssSelector("body > div.jq-toast-wrap.bottom-right > div>h2")).getText();
        //截图保存测试结果验证警告提示内容是否与预期一致
        getScreenShot(getClass().getName());
        assert res01.equals("警告");
        //通过刷新保证输入框没有文本
        driver.navigate().refresh();
    }

    //检查登录失败02--用户名为空
    public void LoginFail02() throws IOException {
        //输入用户名
        driver.findElement(By.cssSelector("#username"));
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        //点击登录按钮
        driver.findElement(By.cssSelector("#submit")).click();
        //获取当前异常文本
        String res02 = driver.findElement(By.cssSelector("#signInForm > div.mb-3 > div")).getText();
        //截图保存测试结果验证警告提示内容是否与预期一致
        getScreenShot(getClass().getName());
        assert res02.equals("用户名不能为空");
        //通过刷新保证输入框没有文本
        driver.navigate().refresh();
    }

    //检查登录失败03--密码为空
    public void LoginFail03() throws IOException {
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("swhdf");
        //输入密码
        driver.findElement(By.cssSelector("#password"));
        //点击登录按钮
        driver.findElement(By.cssSelector("#submit")).click();
        //获取当前异常文本
        String res03 = driver.findElement(By.cssSelector("#signInForm > div.mb-2 > div > div")).getText();
        //截图保存测试结果验证警告提示内容是否与预期一致
        getScreenShot(getClass().getName());
        assert res03.equals("密码不能为空");
        //通过刷新保证输入框没有文本
        driver.navigate().refresh();
    }

}

